package main

import "fmt"

func main() {
	// 每一层的代码，变量作用域都是当前一层的。如果当前层找不到变量，才会向外层找
	x := 1
	fmt.Println("第一层的x:", x)
	for i := 0; i < 1; i++ {
		x := "a"
		fmt.Println("第二层的x:", x)
		if i == 0 {
			x := 666
			fmt.Println("第三层的x1:", x)
		}
		if i == 0 {
			// 找第二层的变量
			fmt.Println("第三层的x2:", x)
		}
		fmt.Println("第二层的x:", x)
	}

	for i := 0; i < 1; i++ {
		fmt.Println("第二层的x2:", x)
	}
	fmt.Println("第一层的x:", x)
}
